import os
import shutil
import time
from time import sleep

import pytest
import uiautomation as auto

@pytest.fixture(scope='session')
def create_init():
    app_windows = auto.WindowControl(Name='主页 - 博微技改检修工程计价通T1软件(V1.8.1.370)', searchDepth=1)
    print('====正在初始化创建工程====')
    app_windows.SendKeys('{Ctrl}(K)') # 关闭工程，如果已关闭则不会操作
    # app_windows.SwitchToThisWindow()
    yield app_windows
    print('====正在清除工程====')
    shutil.rmtree("D:\博微软件\技改检修工程计价通T1软件_1.8.1.3701\用户工程")
    os.mkdir("D:\博微软件\技改检修工程计价通T1软件_1.8.1.3701\用户工程")

def pytest_collection_modifyitems(items):
    # 解决pytest执行用例，标题有中文时显示编码不正确的问题
    # print('items是：',items)
    for item in items:
        # print('item是：',item)
        item.name = item.name.encode("utf-8").decode("unicode_escape")
        item._nodeid = item.nodeid.encode("utf-8").decode("unicode_escape")

# 其实没必要去轮询判断窗口是否存在
    # start_time = time.time()
    # frequency_time = 0.5
    # time_out = 30
    # end_time = time.time()
    # while end_time-start_time<time_out:
    #     if '博微技改检修工程' in auto.GetForegroundControl().GetTopLevelControl().GetWindowText():
    #         app_windows = auto.GetForegroundControl().GetTopLevelControl()
    #         print('====正在初始化创建工程====')
    #         app_windows.SendKeys('{Ctrl}(K)') # 关闭工程，如果已关闭则不会操作
    #         yield app_windows
    #         print('====正在清除工程====')
    #         break
    #         # # 关闭工程，删除工程
    #         # sleep(1)
    #         # auto.SendKeys('{Ctrl}(K)') # 运行结束后再关闭工程
    #         # shutil.rmtree("D:\博微软件\技改检修工程计价通T1软件_1.7.3.121\用户工程")
    #         # os.mkdir("D:\博微软件\技改检修工程计价通T1软件_1.7.3.121\用户工程")
    #     else:
    #         end_time+=frequency_time
    # else:
    #     print('找不到窗口')


